package jscinttools.utilities.aidautilities;
import hep.aida.IAnalysisFactory;
import hep.aida.ITreeFactory;
import hep.aida.ITree;
import hep.aida.ITupleFactory;
import hep.aida.IDataPointSetFactory;
import hep.aida.IHistogramFactory;
import hep.aida.IFunctionFactory;
import hep.aida.IFitFactory;
import hep.aida.IPlotterFactory;
/**
 *  Some generic constant aida factories
 *
 *@author     Marc-Antoine Verdier
 *@created    25 avril 2011
 */
public interface AidaFactories
{
	/**
	 *  Generic IAnalysisFactory
	 */
	public final static IAnalysisFactory ANALYSIS_FACTORY = IAnalysisFactory.create();
	/**
	 *  Generic ITreeFactory
	 */
	public final static ITreeFactory TREE_FACTORY = ANALYSIS_FACTORY.createTreeFactory();
	/**
	 *  Generic ITree (not associated with a store)
	 */
	public final static ITree TREE = TREE_FACTORY.create();
	/**
	 *  Generic ITupleFactory
	 */
	public final static ITupleFactory TUPLE_FACTORY = ANALYSIS_FACTORY.createTupleFactory(TREE);
	/**
	 *  Generic IDataPointSetFactory
	 */
	public final static IDataPointSetFactory DATA_POINT_SET_FACTORY = ANALYSIS_FACTORY.createDataPointSetFactory(TREE);
	/**
	 *  Generic IHistogramFactory
	 */
	public final static IHistogramFactory HISTOGRAM_FACTORY = ANALYSIS_FACTORY.createHistogramFactory(TREE);
	/**
	 *  Generic IFunctionFactory
	 */
	public final static IFunctionFactory FUNCTION_FACTORY = ANALYSIS_FACTORY.createFunctionFactory(TREE);
	/**
	 *  Generic IFitFactory
	 */
	public final static IFitFactory FIT_FACTORY = ANALYSIS_FACTORY.createFitFactory();
	/**
	 *  Generic IPlotterFactory
	 */
	public final static IPlotterFactory PLOTTER_FACTORY = ANALYSIS_FACTORY.createPlotterFactory();
}

